package com.rustic.server.vo.user;

import cn.hutool.core.bean.BeanUtil;
import com.rustic.server.po.User;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

@Data
public class UserBasicInfoVO {
    /**
     * 自增id
     */
    @ApiModelProperty(value = "自增id", dataType = "Integer")
    private Integer id;

    /**
     * 账号
     */
    @ApiModelProperty(value = "账号", dataType = "String")
    private String username;

    /**
     * 手机号码
     */
    @ApiModelProperty(value = "手机号码", dataType = "String")
    private String mobile;

    /**
     * 手机号是否验证
     */
    @ApiModelProperty(value = "手机号是否验证", dataType = "String")
    private String mobileVerified;

    /**
     * 手机区号
     */
    @ApiModelProperty(value = "手机区号", dataType = "String")
    private String mobilePrefix;

    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱", dataType = "String")
    private String email;

    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名", dataType = "String")
    private String name;

    /**
     * 名
     */
    @ApiModelProperty(value = "名", dataType = "String")
    private String firstName;

    /**
     * 姓
     */
    @ApiModelProperty(value = "姓", dataType = "String")
    private String lastName;

    /**
     * 证件类型(1身份证 2港澳台居民居住证 3护照 4其他)
     */
    @ApiModelProperty(value = "证件类型(1身份证 2港澳台居民居住证 3护照 4其他)", dataType = "int")
    private int cardType;

    /**
     * 证件号
     */
    @ApiModelProperty(value = "证件号", dataType = "String")
    private String idCard;

    /**
     * 头像
     */
    @ApiModelProperty(value = "头像", dataType = "String")
    private String avatar;

    /**
     * 性别(1男 2女 3未知)
     */
    @ApiModelProperty(value = "性别(1男 2女 3未知)", dataType = "int")
    private int gender;

    /**
     * 国籍
     */
    @ApiModelProperty(value = "国籍", dataType = "String")
    private String nationality;

    /**
     * 通讯地址
     */
    @ApiModelProperty(value = "通讯地址", dataType = "String")
    private String address;

    /**
     * 会员权益(1贵宾区 2发起聊天 3隐私设置), 多个时逗号分隔
     */
    @ApiModelProperty(value = "会员权益(1贵宾区 2发起聊天 3隐私设置), 多个时逗号分隔", dataType = "String")
    private String rights;

    /**
     * 是否启动隐私设置（rights字段包含3，该设置才生效）
     */
    @ApiModelProperty(value = "是否启动隐私设置（rights字段包含3，该设置才生效）", dataType = "String")
    private String enablePrivacy;

    /**
     * 角色id(逗号分隔)
     */
    @ApiModelProperty(value = "角色id,1普通会员,2嘉宾,3赞助商(逗号分隔)", dataType = "String")
    private String roleIds;

    /**
     * 注册状态(1已完成 2未完成)
     */
    @ApiModelProperty(value = "注册状态(1已完成 2未完成)", dataType = "int")
    private int registerStatus;

    /**
     * 注册认证时间
     */
    @ApiModelProperty(value = "注册认证时间", dataType = "Date")
    private Date registerTime;

    /**
     * 是否锁定
     */
    @ApiModelProperty(value = "是否锁定", dataType = "String")
    private String isLock;

    /**
     * 最后登录ip
     */
    @ApiModelProperty(value = "最后登录ip", dataType = "String")
    private String lastIp;

    /**
     * 最后登录时间
     */
    @ApiModelProperty(value = "最后登录时间", dataType = "Date")
    private Date lastTime;

    /**
     * 注册ip
     */
    @ApiModelProperty(value = "注册ip", dataType = "String")
    private String createIp;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", dataType = "Date")
    private Date createTime;

    public UserBasicInfoVO(User user) {
        if (user != null) {
            BeanUtil.copyProperties(user, this);
        }
    }
}
